package com.tj.bo.user.client;

import com.tj.bo.user.client.vo.output.UserAccessInfoRO;
import com.tj.bo.user.client.vo.output.UserBehaviorDeviceOutput;
import com.tj.bo.user.client.vo.output.UserBriefInfoRO;
import com.tj.bo.user.client.vo.output.UserQueryOutput;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: binary
 * Date: 2020/6/9
 * Time: 下午5:08
 */
public interface UserQueryService {

    UserQueryOutput getUserInfoByRealToken(String realToken);

    UserBriefInfoRO getUserInfoByUserCode(String userCode);

    String getTokenByUserCode(String userCode);

    /**
     * 根据设备号查虚拟用户
     *
     * @param appCode
     * @param deviceId
     * @return
     */
    UserQueryOutput getUserInfoByDeviceId(String appCode, String deviceId);

    UserBehaviorDeviceOutput getUserDeviceInfoByUserCode(String userCode);


    UserAccessInfoRO getUserAccessInfo(String email);

    UserAccessInfoRO getUserAccessInfoByUserCode(String userCode);

    /**
     * 是否需要认证
     * @param userCode
     * @return
     */
    boolean needAuthentication(String userCode);

    /**
     * 查询设备号大于deviceIdNum的用户列表
     * @param deviceIdNum
     * @return
     */
    List<UserAccessInfoRO> selectRealUserAccessGroupByDeviceId(Integer deviceIdNum);

}
